// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.common;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 类描述
 * <p>
 * 此类关联设计的功能
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年1月22日
 */
public interface ExcelImportCallBack {
	/**
	 * 检测excel文件每一行记录的有效性
	 * 
	 * @param record
	 * @return
	 */
	Collection<RowError> checkRow(String[] record);

	/**
	 * 持久化excel文件每一行记录
	 * 
	 * @param record
	 * @return
	 */
	boolean persistRowToDb(String[] record);

	/**
	 * 导入成功函数回调
	 *
	 * @param resp
	 * @return
	 */
	ImportResp allSuccess(ImportResp resp);

	/**
	 * 导入部分失败
	 *
	 * @param resp
	 * @return
	 */
	ImportResp partFailure(ImportResp resp);

	/**
	 * 将失败的导入数据转成前台可以展示的数据
	 *
	 * @param failRecords
	 * @return
	 */
	List<Map> convertFailList(List<String[]> failRecords);

}
